FTRACE_BUILD_DIR = build
FTRACE_BIN = build/ftrace
FTRACE_BIN_DEBUG = $(FTRACE_BIN)_debug
FTRACE_TEST = build/test
FTRACE_SRC_DIR = src
FTRACE_TEST_DIR = test
FTRACE_CFLAGS = -Wall -Dx86_64

.phony: $(FTRACE_BIN) $(FTRACE_TEST)

all: $(FTRACE_BIN) $(FTRACE_TEST) Makefile
	mkdir -p $(FTRACE_BUILD_DIR)
	cp $(FTRACE_SRC_DIR)/ftrace $(FTRACE_BIN)
	cp $(FTRACE_TEST_DIR)/test $(FTRACE_TEST)

debug: $(FTRACE_BIN_DEBUG) $(FTRACE_TEST) Makefile
	mkdir -p $(FTRACE_BUILD_DIR)
	cp $(FTRACE_SRC_DIR)/ftrace $(FTRACE_BIN_DEBUG)
	cp $(FTRACE_TEST_DIR)/test $(FTRACE_TEST)


$(FTRACE_BIN):
	make -C $(FTRACE_SRC_DIR) CFLAGS="$(FTRACE_CFLAGS)"

$(FTRACE_BIN_DEBUG):
	make -C $(FTRACE_SRC_DIR) CFLAGS="-pg -DFTRACE_DEBUG -Dx86_64"

$(FTRACE_TEST):
	make -C $(FTRACE_TEST_DIR)

clean:
	make -C $(FTRACE_SRC_DIR) clean
	make -C $(FTRACE_TEST_DIR) clean
	rm -rf $(FTRACE_BUILD_DIR)

